package com.tedu.API.IO;

import java.io.Serializable;
import java.util.Arrays;

/**
 * Persion.java
 *
 * IO--高级流--针对传对象
 * 对象需要具备：
 *             1.实现序列化接口  Serializable序列化接口--提供：功能
 *             序列化接口：Persion.java ---JDK中虚拟机---转成Persion.class[字节码文件]
 *             转换成二进制---序列化接口实现
 *             2.静态常量值：对象输出流---对象输入流 版本号--项目升降级
 *
 *     InvalidClassException 类版本号转换错误异常
 *     原因：序列化或者反序列化操作,传输类--指定版本号--该改Persion.java【自动重新生成一个版本】
 *     serialVersionUID = -4808106206799531945//name,say属性
 *     serialVersionUID = -1366421517761939356//name,say,age属性
 */
public class Persion implements Serializable {
    /**
     * 版本号：决定反序列化是否成功【字节文件转换为对象】
     *     类实现Serializable接口，具备序列化功能，类自动生成版本号
     *     建议重写版本号
     *     每次增加减少代码，统一版本号，读入【反序列化成功】
     *     实现程序的升级降价操作
     * javaBean:java豆子---按照规范编写实体类
     */

    private static final long seriaVersionUID=1L;
    //私有属性
    private String name;
    private String[] say;
    public int age;

    //region my Custom region 构造器 set get toString
     //创建空参的构造器
    public Persion() {
    }
     //有参构造器
    public Persion(String name, String[] say) {
        this.name = name;
        this.say = say;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getSay() {
        return say;
    }

    public void setSay(String[] say) {
        this.say = say;
    }

    //Object toString() 打印对象的地址值
    public String toString() {
        return "Persion{" +
                "name='" + name + '\'' +
                ", say=" + Arrays.toString(say) +
                '}';
    }
    //endregion
}
